Various kind of devices, including mobile devices such as smartphones and tablets, are now equipped with a NFC interface. The NFC interface provides access to one or several types of NFC enabled cards, such as NFC enabled credit cards, NFC enabled transit payment cards, etc.
Since the card may contain critical information in terms of security (such as account numbers and related credentials in the context of NFC enabled credit cards), it is of great importance to prevent unauthorized access to the critical information stored on the card from the device via its NFC interface.
Several mechanisms have been implemented to control the access to the NFC enabled card. For example, in a device comprising a main Central Processing Unit (CPU), a Secure Element (SE) and a NFC Controller, the NFC Controller prevents direct access to the card from any application executed by the main CPU, while granting direct access to the card to all applications executed by the Secure Element (the applications executed by the Secure Element are certified and deemed to be secure). Some applications executed by the main CPU can gain an indirect access to the card via the Secure Element, by invoking dedicated Application Procedure Interfaces (APIs) of the Secure Element. For instance, a payment control application executed by the main CPU exchanges data with a NFC enabled credit card via APIs of the Secure Element, the Secure Element providing an indirect access to the credit card via the NFC controller. The determination of which applications executed by the main CPU can access the APIs of the Secure Element is commonly made at the main CPU level, which is not sufficiently secure. An application accessing the APIs of the Secure Element, such as a payment control application is usually certified, and developing such an application requires knowledge of the APIs of the Secure Element. However, nothing prevents someone from developing a rogue application that mimics the behavior of a certified payment control application to gain access to critical information of a credit card via the APIs of the Secure Element. In another scenario, a rogue application may be installed on the Secure Element for the same malicious purposes. The latter scenario requires a breach of the security infrastructure associated to the Secure Element, which is challenging, but not impossible.
The aforementioned security mechanisms for controlling the access to a NFC enabled card lack in granularity and security, since they do not provide the capability to securely filter the access on a per application basis. There is therefore a need for a new method and device for controlling access from the device to a NFC enabled card via a NFC interface of the device.